The run-time challenges for computer-generated actors (CGAs) lie in computing human-like behaviors and reactions to a complex dynamic environment at a human-scale rate of time. (A computer-generated actor is an entity whose intelligence is computer-based. Its decisions are made using one or a number of artificial intelligence decision-making techniques that operate upon one or more knowledge bases. A computer-generated actor's observable behaviors are based on the outputs of the decision mechanisms and are moderated by one or more human behavior models.) Additionally, the CGA behavior must be realistic and accurate enough so that other CGAs and human participants react to its outputs as though it were human-controlled. Therefore, the capability to construct large, complex reasoning systems and the development of comprehensive knowledge bases for use by the decision machinery are needed to enable the implementation of CGAs of acceptable fidelity. A large body of work has been developed that addresses these and other issues that must be addressed when assembling a CGA. To date, many aspects of the process of defining a CGA, its behavior, architecture, and reasoning sysetms have been reported. Unfortunately, no consensus has emerged concerning the best means to accomplish these tasks and the literature provides minimal insight into the difficulties involved and approaches that have demonstrated potential or proven useful. Surprisingly, the requirements for CGAs have been addressed infrequently in the literature, but this may be because general-purpose requirements are difficult to enumerate at this stage of the development of the field. Lessons learned and system specifications have also been discussed sparingly. As might be expected for a software system, architectural aspects for the CGA have been addressed often and report the use of a wide variety of approaches. The architectural approaches range from modular software libraries and interacting processes to closely coupled objects and data-flow architectures. The crucial aspect of any CGA, as has been proved in many demonstrations, is the effectiveness of its reasoning mechanism. The reasoning mechanism should offer acceptable performance coupled with robustness and suitability to the problem domain. A wide variety of reasoning systems have been proposed, but to date no consensus has been reached. Results to date indicate that the problem domain and operational environment more than any other factors determine the suitability of a reasoning system. However, no guidelines have been proposed that would allow a system developer to choose a reasoning mechanism based upon a characterization of the problem domain or operational environment.
Associated with the issue of choice of reasoning system are the issues of knowledge acquisition and representation. Behavior modeling is also an important issue. In these areas, as in the case of reasoning mechanisms, no consensus has been developed regarding solutions to the issues that are involved, but this may be due to the application-specific solutions proposed in many papers and the stringent demands of the problem domains that were investigated. A number of researchers have addressed issues related to threat system generation. A related issue is the modeling of the military command and control processes that the CGAs must operate within. Here again, a wide variety of approaches have been examined for architectures, approaches, reasoning systems, models of military hierarchy, order generation and dissemination, intelligence gathering, and command and control. However, no consensus has emerged. Planning and inter-CGA coordination are important issues for CGAs, unfortunately little work that has been reported. As in most areas of CGA technology, no consensus has emerged and there is clearly no superior approach.
In general, software architectures have witnessed a gradual evolution over the paste eight years from a state where the software architecture is closely tied to the reasoning system to a state where the architecture is designed independently of the supported reasoning system(s). Most system rely on the programmer to be very familiar with the system, design, and implementation in order to make changes to the implementation, in general most systems also seem to have very high coupling and a very low degree of information hiding. However, there does seem to be a move toward systems with greater encapsulation of functionality/objects and amore component-based approach. The most popular current architectural approach is the use of software modules as the foundation for the architecture. Object-oriented inheritance, when used, seems to be favored as an approach; however, the inheritance trees are permitted to grow without bound, which tends to limit the utility and effectiveness of inheritance. Most authors do not discuss their approach to the decomposition or architectural definition task, when the topics are discussed the most favored approach seems to be one centered around a functional decomposition. Software agents continue to gain in popularity as an architectural solution, no doubt in the hope that their use will help to control the complexity of the overall system. Software layering, sometimes used in conjunction with object-orientation or components, has been used by a few systems to help control the complexity of the software. However, some of the resulting systems nevertheless have complex architectures. In general, systems still have a connection between the architecture and supported reasoning system and only a few CGA applications are capable of supporting more than one reasoning system. Additionally, the question of which architectural approach(es) best suit the CGA domain remains an open problem.
Accordingly, those skilled in the art will readily recognize there is a need to provide a system architectural definition, to minimize software development cost, to minimize data transport cost and to minimize software maintenance cost at the architectural and design level for CGA applications. The present invention addresses this need.